Optical pointing devices are already known in the art. U.S. Pat. No. 6,806,458, filed in the name of the same Assignee and which is incorporated in its entirety herein by reference, for instance discloses a method, a sensing device as well as an optical pointing device including a sensing device for comparing light intensity between pixels.
FIG. 1 is a generalized schematic bloc diagram of an optical pointing device in accordance with the prior art. It comprises a photodetector array 120 including a plurality of pixels, this photodetector array 120 being coupled to processing means 100 (or motion detection processing circuit) which consists, in a non limiting manner, of a micro-controller, microprocessor or other adequate logic circuitry for processing the signals outputted by the photodetector array 120. Motion detection processing circuit 100 in particular includes accumulator circuits and other logic circuits for performing mathematical and logic operations. A comparator array 115 may be interposed between processing means 100 and array 120, this comparator array 115 including a plurality of comparator circuits each for comparing the light intensity of a first pixel of array 120 with the light intensity of a second pixel of array 120 and for outputting a resulting edge direction condition. It will basically be understood that each comparator circuit may alternatively be incorporated in the active region of each pixel.
The optical pointing device further comprises at least one light source 110 (or more) such as a LED, which produces radiation, preferably monochromatic (such as visible or non-visible light—preferably infrared light), that impinges on a portion of a surface S.
Processing means 100 is essentially designed to intermittently sample the pixel outputs of photodetector array 120 in accordance with a defined sequence. The edge information of two successive samples is compared and a relative motion measurement is extracted by processing means 100. The adequate cursor control signals are then derived from the relative motion measurement and transmitted to the host system via line interface 150.
The imaging technique used in order to extract motion-related information is based on a so-called “Edge Motion Detection” technique, which essentially consists in a determination of the movement of edges (i.e. a difference between the intensity of pairs of pixels) in the image detected by the photodetector array. Edges are defined as spatial intensity differences between two pixels of the photodetector array. Relative motion of edges is determined by comparing the position of these edges in the photodetector array at a first point in time with the position of edges in the photodetector array at a subsequent point in time. The light source (such as an infrared LED) intermittently illuminates the portion of the surface in accordance with a determined sequence, and the pixel outputs of the photodetector array are sampled in accordance with the determined sequence to provide two successive sets of edge data that are compared to each other in order to determine a relative motion measurement. Thus, the relative motion of each of these edges is tracked and measured so as to determine an overall displacement measurement which is representative of the relative movement between the photodetector array and the illuminated portion of the surface.
A differential technique may be used in order to determine an edge condition between two pixels. An edge is defined between two pixels if the ratio of intensities of the two photosensitive elements is larger than a determined level. A hysteresis threshold may be provided when comparing pixel intensities. In this respect, the comparator output will depend from its previous state and from the hysteresis threshold. An edge may thus be defined mathematically by the following programming loop:
IF (last_comparator_state =‘0’ AND Intensity [PIXEL 1] > (Intensity [PIXEL 2] + Vhyst/2)); THEN (comparator_output =‘1’);ELSE IF (last_comparator_state =‘1’ AND (Intensity [PIXEL 1] +Vhyst/2) < Intensity [PIXEL 2]);THEN (comparator_output =‘0’);ELSE (comparator_output = last_comparator_state).where Vhyst is an hysteresis window in Volts.
It will be appreciated that the above programming loop allows defining an edge condition between the two pixels.
Alternatively a “scaled” hysteresis function may be implemented, where the hysteresis window is a percentage of the pixel output value. Then an edge may be defined mathematically by the following programming loop:
IF (last_comparator_state =‘0’ AND Intensity [PIXEL 1] >K Intensity [PIXEL 2]);THEN (comparator_output =‘1’);ELSE IF (last_comparator_state =‘1’ AND K Intensity [PIXEL 1] <Intensity [PIXEL 2]);THEN (comparator_output =‘0’);ELSE (comparator_output = last_comparator_state).where K is a selected scaling factor being greater than 1.
The scaling factor K may be adjusted so that the sensing device is less sensitive to analog measurement noise. In practice, it would be desirable to implement a hysteresis function in the sensing device. U.S. Pat. No. 6,806,458 provides a solution that shows flexibility and allows adjustment of the scaling factor K and/or implementation of a hysteresis function that allows sensitivity to noise to be reduced.
One example of method for comparing light intensity between neighbouring pixels is described with reference to FIG. 2. Four pixels designated P0 to P3 aligned along an axis are depicted, as well as three comparator circuits COMP1 to COMP3, these comparator circuits being part of a separate comparator array as shown in FIG. 1 (comparator array 115). Each comparator circuit compares light intensity between two neighbouring adjacent pixels. As illustrated, light intensity detected by pixel P0 is for instance compared by comparator circuit COMP1 with the light intensity of pixel P1 Similarly, comparator circuits COMP2 and COMP3 are respectively coupled to pixels P1, P2 and P2, P3. It will be appreciated that other possibilities for comparing light intensity between non-adjacent neighbouring pixels may be envisaged as well. Some alternatives are given for example in US Patent Publication No. 2005/062,720 and in U.S. Pat. No. 6,806,458, filed in the name of the same Assignee and incorporated herewith by way of reference.
As regards the comparison steps performed by the comparator circuits in order to extract the required edge direction data, those steps are performed with implementation of a hysteresis function. The use of comparator circuits with hysteresis prevents randomness of the edge direction condition between first and second pixels showing equal or nearly equal light intensity levels. Further, such a hysteresis window is really important in terms of noise immunity and for the elimination of false motion detection while the optical pointing device is not moving, i.e. at rest. Such false motion is usually detected on low contrast surfaces, which exhibit a small delta of light intensity on the edge comparator inputs. This results in a costly implementation in terms of power consumption, since it may prevent the optical pointing device from entering sleep mode or conversely will wake up frequently and unnecessarily the system from sleep mode.
However, such a “hard” setting of the hysteresis function of these light intensity comparators is problematic, since fixing the hysteresis value calls for a trade off between the rate of false motion detection and thus power consumption and the ability of the sensing device to detect motion. On the one hand, if the hysteresis threshold of the light intensity comparators is set low then the motion sensing device will always detect motion even if the optical pointing device is at rest, and on the other hand, if the hysteresis threshold is set high, then the motion sensing device may not detect any motion especially on low contrast surfaces even when the optical pointing device is moving.